<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script>
    //    js中方法和函数叫法的区别
    //    Method(方法): 和某一个对象实例有联系
    //    function(函数): 其他的就叫函数

    //prototype表示该函数的原型，也表示一个类的成员的集合

    //封装栈类
    function Stack(){

    //    栈中的属性
        this.items = []
    //    栈的相关操作
    //    1、将元素压入栈
        Stack.prototype.push = function(element){
            return this.items.push(element)
        }
    //    2、丛栈中取出元素
        Stack.prototype.pop = function(element){
            return this.items.pop()
        }
    //    3、查看一下栈顶元素
        Stack.prototype.peek = function(element){
            return this.items[this.items.length - 1 ]
        }
    //    4、判断栈是否为空
        Stack.prototype.isEmpty = function(element){
            return this.items.length == 0
        }
    //    5、获取栈中元素的个数
        Stack.prototype.size = function(element){
            return this.items.length
        }
    //    6、toString方法
        Stack.prototype.toString = function(element){
            //20 10 12 8 7
            var resultString = ''
            for(var i=0; i<this.items.length;i++){
                resultString += this.items[i] + ' '
            }
            return resultString
        }
    //    栈的使用
        var s = new Stack()
    }



</script>
</body>
</html>